In [1]:
%pylab inline

import collections

#import plotly.plotly as py
#from plotly.graph_objs import *
#from plotly.offline import init_notebook_mode,iplot
#init_notebook_mode()

from IPython.core.display import HTML
Populating the interactive namespace from numpy and matplotlib
In [2]:
 HTML('''<script>
code_show=true;
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit"
value="Click here to toggle on/off the raw code."></form>''')
Out[2]:

Free electron bands for square lattice

$E_n(\mathbf{k})=\frac{\hbar^2}{2m}\, {\left(\mathbf{k}-\mathbf{G}_n\right)}^2 $

Energy in units of $\frac{\hbar^2}{2m}\, {\left(\frac{1}{a}\right)}^2$,

wave number $k$ in units of $1/a$, where $a$ is the lattice constant.

In [3]:
# Az abra kimentesehez az alabbiakat a plt.show()  ele kell tenni!!! 

#savefig('fig_rainbow_p2_1ray.pdf');  # Abra kimentese
#savefig('fig_rainbow_p2_1ray.eps');  # Abra kimentese

# Abra es fontmeretek
xfig_meret= 6   #    12 nagy abrahoz
yfig_meret= 6    #   12 nagy abrahoz
xyticks_meret= 15  #  20 nagy abrahoz
xylabel_meret= 20  #  30 nagy abrahoz
legend_meret= 21   #  30 nagy abrahoz
In [4]:
def free_en(kp, Gvec):
    
    # Gvec --->   G vectors

    eig_en = []
    for G in Gvec:   
        eig_en.append(dot((kp-G),(kp-G)))
        
    return sort(eig_en)
In [5]:
def Ham_op(kv, Gvec, params):
    
    # Dirac-delta szennyezok a racsatomokon 
    # Hsize = the size of the ham matrix, input
    
    w = params  # w ----> a Dirac-delta potencial erossege, input
    
    Hsize = len(Gvec)
    Ham = w*ones((Hsize,Hsize))  # a Ham Hamiltonian matrix minden eleme = w
    
    # a Ham diagonalis elemei = a kinetic energy:
    i=0
    for g in Gvec:    
        Ham[i,i] = dot(kv-g,kv-g)
        i +=1
        
    return Ham
In [6]:
def rajz_contour(X,Y,dat,ncont): 
    #  az elso negy sav contour plotja
    # X ---> a kx pontok 
    # Y ---> a ky pontok 
    # dat ---> a  
    # ncont = a contour-vonalak szama, pl. ncont = 11
    
    # ncont = a contour-vonalak szama, pl. ncont = 11

    # reading the eigenvalues from 'dat' 
    # az elso negy beolvasasa a Z1, Z2, Z3, Z4 array-be: 
    Z1 = reshape(dat[:,0],(kpoints, kpoints))
    Z2 = reshape(dat[:,1],(kpoints, kpoints))
    Z3 = reshape(dat[:,2],(kpoints, kpoints))
    Z4 = reshape(dat[:,3],(kpoints, kpoints))

    figsize(xfig_meret,yfig_meret)

    subplot(2,2,1,aspect='equal')
    cp=contour(X, Y, Z1, ncont, alpha=1, colors='blue', linestyles='-',linewidths=2)
    clabel(cp, inline=True,  fontsize=10)

#korutvonal()  # a  Gamma--M--K--Gamma korutat rajzolja ki
#BZkorut()

    text(Xp[0],Xp[1], r'X', fontsize=xylabel_meret,color='red')
    text(Mp[0],Mp[1], r'M', fontsize=xylabel_meret,color='red')
    text(0,0, r'$\Gamma$', fontsize=xylabel_meret,color='red')

    title(r'$E_1({\bf k})$',fontsize=xylabel_meret)
    xlabel(r'$k_x$',fontsize=xylabel_meret)
    ylabel(r'$k_y$',fontsize=xylabel_meret)

    xticks(fontsize=xyticks_meret)
    yticks(fontsize=xyticks_meret);
    grid();

    subplot(2,2,2,aspect='equal')
    cp=contour(X, Y, Z2, ncont, alpha=1, colors='green', linestyles='-',linewidths=2)
    clabel(cp, inline=True,  fontsize=10)

#korutvonal()  # a  Gamma--M--K--Gamma korutat rajzolja ki
#BZkorut()

    text(Xp[0],Xp[1], r'X', fontsize=xylabel_meret,color='red')
    text(Mp[0],Mp[1], r'M', fontsize=xylabel_meret,color='red')
    text(0,0, r'$\Gamma$', fontsize=xylabel_meret,color='red')

    title(r'$E_2({\bf k})$',fontsize=xylabel_meret)
    xlabel(r'$k_x$',fontsize=xylabel_meret)
    ylabel(r'$k_y$',fontsize=xylabel_meret)

    xticks(fontsize=xyticks_meret)
    yticks(fontsize=xyticks_meret);
    grid();

    subplot(2,2,3,aspect='equal')
    cp=contour(X, Y, Z3, ncont, alpha=1, colors='orange', linestyles='-',linewidths=2)
    clabel(cp, inline=True,  fontsize=10)

#korutvonal()  # a  Gamma--M--K--Gamma korutat rajzolja ki
#BZkorut()

    text(Xp[0],Xp[1], r'X', fontsize=xylabel_meret,color='red')
    text(Mp[0],Mp[1], r'M', fontsize=xylabel_meret,color='red')
    text(0,0, r'$\Gamma$', fontsize=xylabel_meret,color='red')

    title(r'$E_3({\bf k})$',fontsize=xylabel_meret)
    xlabel(r'$k_x$',fontsize=xylabel_meret)
    ylabel(r'$k_y$',fontsize=xylabel_meret)

    xticks(fontsize=xyticks_meret)
    yticks(fontsize=xyticks_meret);
    grid();
        
    subplot(2,2,4,aspect='equal')
    cp=contour(X, Y, Z4, ncont, alpha=1, colors='red', linestyles='-',linewidths=2)
    clabel(cp, inline=True,  fontsize=10)

#korutvonal()  # a  Gamma--M--K--Gamma korutat rajzolja ki
#BZkorut()

    text(Xp[0],Xp[1], r'X', fontsize=xylabel_meret,color='red')
    text(Mp[0],Mp[1], r'M', fontsize=xylabel_meret,color='red')
    text(0,0, r'$\Gamma$', fontsize=xylabel_meret,color='red')

    title(r'$E_4({\bf k})$',fontsize=xylabel_meret)
    xlabel(r'$k_x$',fontsize=xylabel_meret)
    ylabel(r'$k_y$',fontsize=xylabel_meret)

    xticks(fontsize=xyticks_meret)
    yticks(fontsize=xyticks_meret);
    grid();

    tight_layout()  #  a szomszedos x,y tengelyfeliratok NE fedjenek at.

#savefig('fifi.eps');  # Abra kimentese

#show();
In [7]:
#  2D square lattice, unit cell:

b1 = 2*pi*array([1,0])
b2 = 2*pi*array([0,1])


# creating 2D square lattice reciprocal vectors: 
Gnum = 2  #### (2*Gnum+1)*(2*Gnum+1) number of Gvec
indx=array(range(-Gnum,Gnum+1))
Gvec = []
for n1 in indx:
    for n2 in indx:
        Gvec.append(n1*b1+n2*b2)
        
# Gamma, M es X pontok a Brillouin-zonaban:
Gp = array([0,0])
Xp=b1/2
Mp=(b1+b2)/2     

Special points in the Brilloiun zone of the square lattice:

In [8]:
print("Number of G vectors included in the calculation = ", len(Gvec))
Number of G vectors included in the calculation =  25
In [9]:
# creating sample of k points 

kpoints = 50   # number of k points in the Brillouin zone 

kran=linspace(-pi,pi,kpoints ) #  Brilloin zone 2*pi x 2*pi square
X,Y=meshgrid(kran,kran)
kgrid=transpose(array([X.flatten(),Y.flatten()]))

Contour plot of the first 4 bands

$w = 0$, empty lattice

In [10]:
# calculating the eigenvalues at each k points in the Brillouin zone

w = 0 #### w ---> a Dirac-delta potencial erossege, input
params=[w]
print("w =", w)

Hsize=len(Gvec)  # Hsize = the size of the ham matrix, input
print("The size of the Hamiltonian =", Hsize)

dat=[]   #  dat ---> array of the eigenvalues at each k points
for kv in kgrid:
    dat.append(eigvalsh(Ham_op(kv, Gvec, params)))
dat=array(dat)  

ncont = 7  # a contour-vonalak szama, pl. ncont = 11
    
rajz_contour(X,Y,dat,ncont)
#savefig('fifi1a.eps');  # Abra kimentese
w = 0
The size of the Hamiltonian = 25
In [11]:
print("w =", w)

print("The size of the Hamiltonian =", Hsize)

# reading the eigenvalues from 'dat' 
# az elso 2 beolvasasa a Z1, Z2  array-be: 
Z1 = reshape(dat[:,0],(kpoints, kpoints))
Z2 = reshape(dat[:,1],(kpoints, kpoints))

ncont = 17  # a contour-vonalak szama, pl. ncont = 11

e_szintek = [4,12,14]  #  ezek a kontans energia ertekek

figsize(xfig_meret,yfig_meret)

subplot(1,1,1,aspect='equal')

cp1=contour(X, Y, Z1, levels=e_szintek, alpha=1, colors='blue', linestyles='-',linewidths=2)
clabel(cp1, inline=True,  fontsize=10)
cp2=contour(X, Y, Z2, levels=e_szintek, alpha=1, colors='green', linestyles='--',linewidths=2)
clabel(cp2, inline=True,  fontsize=10)

grid();

#savefig('fifi1b.eps');  # Abra kimentese
w = 0
The size of the Hamiltonian = 25

Fermi energies, zero Dirac potential:

In [12]:
##  Fermi energies 

print("w =", w)

print("The size of the Hamiltonian =", Hsize)

# reading the eigenvalues from 'dat' 
# az elso 2 beolvasasa a Z1, Z2  array-be: 
Z1 = reshape(dat[:,0],(kpoints, kpoints))
Z2 = reshape(dat[:,1],(kpoints, kpoints))

ncont = 17  # a contour-vonalak szama, pl. ncont = 11

###  Brillouin zone Volume: 
VBZ= abs(cross(b1,b2))
print("Volume of the Brilouin zone = ", VBZ,"\n")

###  Fermi energy: 
EF_vec = []
for n in range(1,8):
    tmp = (2*pi*n)
    EF_vec.append(tmp)
    print("Electrons per unit cell = ", n, ", Fermi energy = ",round(tmp,3))

    
# EF_vec  #  ezek a Fermi energiak

figsize(xfig_meret,yfig_meret)

subplot(1,1,1,aspect='equal')

cp1=contour(X, Y, Z1, levels=EF_vec, alpha=1, colors='blue', linestyles='-',linewidths=2)
clabel(cp1, inline=True,  fontsize=10)
cp2=contour(X, Y, Z2, levels=EF_vec, alpha=1, colors='green', linestyles='--',linewidths=2)
clabel(cp2, inline=True,  fontsize=10)

cim = "square lattice, w="+str(0)
title(cim,fontsize=xylabel_meret)

grid();


grid();
#savefig('fifi1b.eps');  # Abra kimentese
w = 0
The size of the Hamiltonian = 25
Volume of the Brilouin zone =  39.4784176044 

Electrons per unit cell =  1 , Fermi energy =  6.283
Electrons per unit cell =  2 , Fermi energy =  12.566
Electrons per unit cell =  3 , Fermi energy =  18.85
Electrons per unit cell =  4 , Fermi energy =  25.133
Electrons per unit cell =  5 , Fermi energy =  31.416
Electrons per unit cell =  6 , Fermi energy =  37.699
Electrons per unit cell =  7 , Fermi energy =  43.982

Contour plot of the first 4 bands

$w = \mathrm{finite} $, Dirac delta potentials at the lattice points

In [13]:
# calculating the eigenvalues at each k points in the Brillouin zone

w = -1. #### w ---> a Dirac-delta potencial erossege, input
params=[w]
print("w =", w)

Hsize=len(Gvec)  # Hsize = the size of the ham matrix, input
print("The size of the Hamiltonian =", Hsize)

dat=[]   #  dat ---> array of the eigenvalues at each k points
for kv in kgrid:
    dat.append(eigvalsh(Ham_op(kv, Gvec, params)))
dat=array(dat)  

ncont = 7  # a contour-vonalak szama, pl. ncont = 11

figsize(xfig_meret,yfig_meret)

rajz_contour(X,Y,dat,ncont)

#savefig('fifi2a.eps');  # Abra kimentese
w = -1.0
The size of the Hamiltonian = 25
In [14]:
print("w =", w)

print("The size of the Hamiltonian =", Hsize)

# reading the eigenvalues from 'dat' 
# az elso 2 beolvasasa a Z1, Z2  array-be: 
Z1 = reshape(dat[:,0],(kpoints, kpoints))
Z2 = reshape(dat[:,1],(kpoints, kpoints))

ncont = 8  # a contour-vonalak szama, pl. ncont = 11

e_szintek = [12,14] #  ezek a kontans energia ertekek

figsize(xfig_meret,yfig_meret)

subplot(1,1,1,aspect='equal')

cp1=contour(X, Y, Z1, levels=e_szintek, alpha=1, colors='blue', linestyles='-',linewidths=2)
clabel(cp1, inline=True,  fontsize=10)
cp2=contour(X, Y, Z2, levels=e_szintek, alpha=1, colors='green', linestyles='--',linewidths=2)
clabel(cp2, inline=True,  fontsize=10)

cim = "square lattice, w="+str(w)
title(cim,fontsize=xylabel_meret)


grid();

#savefig('fifi2b.eps');  # Abra kimentese
w = -1.0
The size of the Hamiltonian = 25

Fermi energies, Dirac potential:

In [15]:
##  Fermi energies 

print("w =", w)

print("The size of the Hamiltonian =", Hsize)

# reading the eigenvalues from 'dat' 
# az elso 2 beolvasasa a Z1, Z2  array-be: 
Z1 = reshape(dat[:,0],(kpoints, kpoints))
Z2 = reshape(dat[:,1],(kpoints, kpoints))

ncont = 17  # a contour-vonalak szama, pl. ncont = 11

###  Brillouin zone Volume: 
VBZ= abs(cross(b1,b2))
print("Volume of the Brilouin zone = ", VBZ,"\n")

###  Fermi energy: 
EF_vec = []
for n in range(1,8):
    tmp = (2*pi*n)
    EF_vec.append(tmp)
    print("Electrons per unit cell = ", n, ", Fermi energy = ",round(tmp,3))

    
# EF_vec  #  ezek a Fermi energiak

figsize(xfig_meret,yfig_meret)

subplot(1,1,1,aspect='equal')

cp1=contour(X, Y, Z1, levels=EF_vec, alpha=1, colors='blue', linestyles='-',linewidths=2)
clabel(cp1, inline=True,  fontsize=10)
cp2=contour(X, Y, Z2, levels=EF_vec, alpha=1, colors='green', linestyles='--',linewidths=2)
clabel(cp2, inline=True,  fontsize=10)

cim = "square lattice, w="+str(w)
title(cim,fontsize=xylabel_meret)

grid();


grid();
#savefig('fifi1b.eps');  # Abra kimentese
w = -1.0
The size of the Hamiltonian = 25
Volume of the Brilouin zone =  39.4784176044 

Electrons per unit cell =  1 , Fermi energy =  6.283
Electrons per unit cell =  2 , Fermi energy =  12.566
Electrons per unit cell =  3 , Fermi energy =  18.85
Electrons per unit cell =  4 , Fermi energy =  25.133
Electrons per unit cell =  5 , Fermi energy =  31.416
Electrons per unit cell =  6 , Fermi energy =  37.699
Electrons per unit cell =  7 , Fermi energy =  43.982
In [16]:
figsize(xfig_meret,yfig_meret)

subplot(1,1,1,aspect='equal')

contourf(X,Y,Z2,levels=linspace(8,17,10))
#contourf(X,Y,Z1,)

#pcolor(X,Y,Z1)
colorbar()
grid();

No potential, free electron in square lattice

In [17]:
## No potential, free electron in square lattice
## square lattice reciprocal vectors:
##  in units of 2 pi/a

Npoints = 50;  ## hany pontbol keszul a gorbe
ymax = 120;
Gnum = 2  #  the number of G vectors = (2*Gnum+1)*(2*Gnum+1)

w=0  ## empty lattice 
print("w =", w)

#print("The size of the Hamiltonian =", len(Gvec))

print("The # of G vectors = (2*Gnum+1)*(2*Gnum+1) = ", (2*Gnum+1)*(2*Gnum+1))

## high symmetry points in the Brillouin zone
## FONTOS: a fenti abra szerinti pontokat kell venni,
## a szomszedos spec. k pontokat kell venni.
Gp = array([0,0])
Xp = b1/2
Mp = (b1+b2)/2

##  G-X-M-G line
specpoints = array([Gp,Xp,Mp,Gp])

klist = []
specpos = [0]
kk = [0]
tmp = 0
for i in (range(len(specpoints)-1)):
    sl = specpoints[i+1]-specpoints[i]  
    sl_hossz = sqrt(dot(sl,sl))
    dk = sl/Npoints
    for num in arange(0,Npoints):
        # k vector along the line given by speclines:
        klist.append(specpoints[i] + num*dk)
        # length of the k vector and shifted: 
        tmp +=  sqrt(dot(dk,dk)) 
        kk.append(tmp) 
    specpos.append(tmp)

klist.append(klist[-1]+dk)   

enlist = []
for i in klist:
    enlist.append(free_en(i, Gvec))

enlist= array(enlist)

eigszam= len(enlist[0,:])
print("The # of eigenvalues = # of G vectors = ",eigszam)
  
# drawing the figure
figsize(xfig_meret,yfig_meret)

for ii in range(0,len(enlist[0,:])):
    plot(kk,enlist[:,ii],color='r')

specNev = ["$\Gamma$","$X$","$M$","$\Gamma$"]

i = 0
for xc in specpos:
    axvline(x=xc,color='b')
    text(xc,-7,specNev[i],fontsize=xylabel_meret)
    i=i+1

ylabel(r'$E(k)$',fontsize=xylabel_meret)

#  kikapcsoljuk a xticks: 
xticks([], [])

xlim(0,specpos[-1])
ylim(0,ymax)

title("square lattice",fontsize=xylabel_meret)

grid();


#savefig('fifi3a.eps');  # Abra kimentese
w = 0
The # of G vectors = (2*Gnum+1)*(2*Gnum+1) =  25
The # of eigenvalues = # of G vectors =  25

Dirac delta potential at the lattice points, quasi free electron in square lattice

In [18]:
## Dirac delta potential at the lattice points, quasi free electron in square lattice
## square lattice reciprocal vectors:
##  in units of 2 pi/a

Npoints = 50;  ## hany pontbol keszul a gorbe
ymax = 120;
Gnum = 2  #  the number of G vectors = (2*Gnum+1)*(2*Gnum+1)

w = -1 #### w = 4.2  ----> a Dirac-delta potencial erossege, input
params=[w]

print("The # of G vectors = (2*Gnum+1)*(2*Gnum+1) = ", (2*Gnum+1)*(2*Gnum+1))
print("w = ",w)


## high symmetry points in the Brillouin zone
## FONTOS: a fenti abra szerinti pontokat kell venni,
## a szomszedos spec. k pontokat kell venni.
Gp = array([0,0])
Xp = b1/2
Mp = (b1+b2)/2

##  G-X-M-G line
specpoints = array([Gp,Xp,Mp,Gp])

klist = []
specpos = [0]
kk = [0]
tmp = 0
for i in (range(len(specpoints)-1)):
    sl = specpoints[i+1]-specpoints[i]  
    sl_hossz = sqrt(dot(sl,sl))
    dk = sl/Npoints
    for num in arange(0,Npoints):
        # k vector along the line given by speclines:
        klist.append(specpoints[i] + num*dk)
        # length of the k vector and shifted: 
        tmp +=  sqrt(dot(dk,dk)) 
        kk.append(tmp) 
    specpos.append(tmp)

klist.append(klist[-1]+dk)   

Hsize= (2*Gnum+1)*(2*Gnum+1)  # Hsize = the size of the ham matrix, input

enlistw = []
for kv in klist:
    enlistw.append(eigvalsh(Ham_op(kv, Gvec, params)))
    
enlistw= array(enlistw)

eigszam= len(enlistw[0,:])
print("The # of eigenvalues = # of G vectors = ",eigszam)
  
# drawing the figure
figsize(10,5)

subplot(1,2,1)

for ii in range(0,len(enlist[0,:])):
    plot(kk,enlist[:,ii],color='r')

specNev = ["$\Gamma$","$X$","$M$","$\Gamma$"]

i = 0
for xc in specpos:
    axvline(x=xc,color='b')
    text(xc,-9,specNev[i],fontsize=xylabel_meret)
    i=i+1

ylabel(r'$E(k)$',fontsize=xylabel_meret)

#  kikapcsoljuk a xticks: 
xticks([], [])

xlim(0,specpos[-1])
ylim(0,ymax)

cim = "square lattice, w="+str(0)
title(cim,fontsize=xylabel_meret)

grid();

subplot(1,2,2)

for ii in range(0,len(enlist[0,:])):
    plot(kk,enlistw[:,ii],color='r')

specNev = ["$\Gamma$","$X$","$M$","$\Gamma$"]

i = 0
for xc in specpos:
    axvline(x=xc,color='b')
    text(xc,-9,specNev[i],fontsize=xylabel_meret)
    i=i+1

#ylabel(r'$E(k)$',fontsize=xylabel_meret)

#  kikapcsoljuk a xticks: 
xticks([], [])

xlim(0,specpos[-1])
ylim(0,ymax)

cim = "square lattice, w="+str(w)
title(cim,fontsize=xylabel_meret)

grid();

## calculation of degeneracy 

print("\nDegeneracy at the special k points without Dirac delta potential: \n=================================\n")
params0=[0]

i=0
for sp in specpoints:
    se = eigvalsh(Ham_op(sp, Gvec, params0))
    sajatertekek =[ round(x,2) for x in se]
    
    deg=collections.Counter(sajatertekek);
    
    keys = sorted(deg.keys())
    
    print("\nDegeneracies in the %s point:" % specNev[i])
    for element in keys:
        print("Energy: %.2f, degeneracy: %d" % ( element, deg[element]))
    
    i +=1


szoveg="\nDegeneracy at the special k points, with Dirac delta potential, w="+str(w)+":\n=================================\n"
print(szoveg)
i=0
for sp in specpoints:
    se = eigvalsh(Ham_op(sp, Gvec, params))
    sajatertekek =[ round(x,2) for x in se]
    
    deg=collections.Counter(sajatertekek)
    
    keys = sorted(deg.keys())
    
    print("\n degeneracies in the %s point:" % specNev[i])
    for element in keys:
        print("Energy: %.2f, degeneracy: %d" % ( element, deg[element]))
    
    
    i +=1
    
#savefig('fifi3b.eps');  # Abra kimentese
The # of G vectors = (2*Gnum+1)*(2*Gnum+1) =  25
w =  -1
The # of eigenvalues = # of G vectors =  25

Degeneracy at the special k points without Dirac delta potential: 
=================================


Degeneracies in the $\Gamma$ point:
Energy: 0.00, degeneracy: 1
Energy: 39.48, degeneracy: 4
Energy: 78.96, degeneracy: 4
Energy: 157.91, degeneracy: 4
Energy: 197.39, degeneracy: 8
Energy: 315.83, degeneracy: 4

Degeneracies in the $X$ point:
Energy: 9.87, degeneracy: 2
Energy: 49.35, degeneracy: 4
Energy: 88.83, degeneracy: 2
Energy: 128.30, degeneracy: 4
Energy: 167.78, degeneracy: 4
Energy: 246.74, degeneracy: 5
Energy: 286.22, degeneracy: 2
Energy: 404.65, degeneracy: 2

Degeneracies in the $M$ point:
Energy: 19.74, degeneracy: 4
Energy: 98.70, degeneracy: 8
Energy: 177.65, degeneracy: 4
Energy: 256.61, degeneracy: 4
Energy: 335.57, degeneracy: 4
Energy: 493.48, degeneracy: 1

Degeneracies in the $\Gamma$ point:
Energy: 0.00, degeneracy: 1
Energy: 39.48, degeneracy: 4
Energy: 78.96, degeneracy: 4
Energy: 157.91, degeneracy: 4
Energy: 197.39, degeneracy: 8
Energy: 315.83, degeneracy: 4

Degeneracy at the special k points, with Dirac delta potential, w=-1:
=================================


 degeneracies in the $\Gamma$ point:
Energy: -0.29, degeneracy: 1
Energy: 35.73, degeneracy: 1
Energy: 40.48, degeneracy: 3
Energy: 75.94, degeneracy: 1
Energy: 79.96, degeneracy: 3
Energy: 154.41, degeneracy: 1
Energy: 158.91, degeneracy: 3
Energy: 191.49, degeneracy: 1
Energy: 198.39, degeneracy: 7
Energy: 313.29, degeneracy: 1
Energy: 316.83, degeneracy: 3

 degeneracies in the $X$ point:
Energy: 8.34, degeneracy: 1
Energy: 10.87, degeneracy: 1
Energy: 45.87, degeneracy: 1
Energy: 50.35, degeneracy: 3
Energy: 87.70, degeneracy: 1
Energy: 89.83, degeneracy: 1
Energy: 125.20, degeneracy: 1
Energy: 129.30, degeneracy: 3
Energy: 165.15, degeneracy: 1
Energy: 168.78, degeneracy: 3
Energy: 243.08, degeneracy: 1
Energy: 247.74, degeneracy: 4
Energy: 285.57, degeneracy: 1
Energy: 287.22, degeneracy: 1
Energy: 403.84, degeneracy: 1
Energy: 405.65, degeneracy: 1

 degeneracies in the $M$ point:
Energy: 16.03, degeneracy: 1
Energy: 20.74, degeneracy: 3
Energy: 91.43, degeneracy: 1
Energy: 99.70, degeneracy: 7
Energy: 174.87, degeneracy: 1
Energy: 178.65, degeneracy: 3
Energy: 253.87, degeneracy: 1
Energy: 257.61, degeneracy: 3
Energy: 332.99, degeneracy: 1
Energy: 336.57, degeneracy: 3
Energy: 493.56, degeneracy: 1

 degeneracies in the $\Gamma$ point:
Energy: -0.29, degeneracy: 1
Energy: 35.73, degeneracy: 1
Energy: 40.48, degeneracy: 3
Energy: 75.94, degeneracy: 1
Energy: 79.96, degeneracy: 3
Energy: 154.41, degeneracy: 1
Energy: 158.91, degeneracy: 3
Energy: 191.49, degeneracy: 1
Energy: 198.39, degeneracy: 7
Energy: 313.29, degeneracy: 1
Energy: 316.83, degeneracy: 3
In [ ]: